package reflect;

/*
 * 可变长参数(应对方法参数的个数不固定所带来的的问题)
 * */
public class ArgDemo {
    public static void main(String[] args) {
        /*
         *
         * */

        dosome("1", "2", "3");
        dosome("1", "2");
        dosome();   //变长参数就算不传送参数都可以
    }

    /**
     * 当我们不确定外界调用此方法的时会传输多少个参数，使用下列方法解决
     * <p>
     * 类型... 变量名 这种设置时代表着不管外界传输过来多少个参数,方法都可以进行接收
     * 注，传的参数个数没有限制，但是类型都要一样,同时一个方法中只能有一个变长参数，并且需要时最后一个参数为变长参数
     * <p>
     * 方法中获取到的参数以数组格式保存
     *
     * @param arg   可变长度参数，用来接收不定长度的String类型参数
     */
    public static void dosome(String... arg) {
        //其实当前arg参数 是一个 Stirng类型的数组
        //在此方法中使用此参数时，需要以数组对待 类型为自己指定的参数类型
        System.out.println(arg.length);
    }
}
